/*
 * DestinationsManager.h
 *
 *  Created on: Mar 16, 2009
 *      Author: Andrzej Olchawa
 *      mailto: andrzejolchawa@gmail.com
 *      http://www.hardtechnology.org
 *      This is a part of the Armazd project, which is covered by
 *      GNU GPL v2 license.
 */

#ifndef DESTINATIONSMANAGER_H_
#define DESTINATIONSMANAGER_H_

/* Include section */
#include <string>
#include <list>

#include "DestinationHost.h"
#include "AgentException.h"

/* namespace declaration */
using namespace std;

/* DestinationsManager class definition */
class DestinationsManager {

protected:

	/* Variables related with destinations */
	list<DestinationHost*> *listOfDestinations;

public:

	/* Constructors and destructor */
	DestinationsManager();
	virtual ~DestinationsManager();

	/* Getters and setters */
	list<DestinationHost*> *getDestinations();

	/* Functions related with processing of destinations list */
	void addDestination(DestinationHost*);
	void addDestination(string, string, int);

	void removeDestination(DestinationHost*);
	void removeDestination(string, string, int);

	bool containsDestination(DestinationHost*);
	bool containsDestination(string, string, int);

	void printDestinations();
	void clearDestinations();

};

#endif /* DESTINATIONSMANAGER_H_ */
